﻿///////////////////////////////////////////////////////////////////////////////
// 文件名： Root.hpp
// 作者：   671643387@qq.com
// 日期：   2015年11月1日 下午6:14:42
// 简介：   
///////////////////////////////////////////////////////////////////////////////

#if !defined(GRAPHICS_ROOT_HPP_)
#define GRAPHICS_ROOT_HPP_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

#include <boost/noncopyable.hpp>

#include <graphics/EventDelegate.hpp>
#include <graphics/LibraryLoader.hpp>
#include <graphics/RenderLoader.hpp>
#include <graphics/graphics/render/Render.hpp>

namespace graphics
{
    class Root : public boost::noncopyable
    {
    public:
        Root(void);
        ~Root(void);

        bool Initialize(void);
        void Run(void);

        void SetEventDelegate(EventDelegatePtr delegate);

        void SetRender(graphics::render::RenderPtr render);
        graphics::render::RenderPtr& GetRender(void);

    private:
        EventDelegatePtr eventDelegate_;
        graphics::render::RenderPtr render_;
    };
}

#endif //GRAPHICS_ROOT_HPP_
